home *** CD-ROM | disk | FTP | other *** search
- unit HLLabel;
-
- {$ifdef Ver80} { Delphi 1.0x }
- {$define DelphiLessThan3}
- {$endif}
- {$ifdef Ver90} { Delphi 2.0x }
- {$define DelphiLessThan3}
- {$endif}
- {$ifdef Ver93} { C++ Builder 1.0x }
- {$define DelphiLessThan3}
- {$endif}
-
- interface
-
- uses
- SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
- Forms, Dialogs, StdCtrls;
-
- type
- THyperLinkLabel = class(TCustomLabel)
- private
- FHyperlinkColour, FOldColour: TColor;
- FHyperlinkStyle, FOldStyle: TFontStyles;
- protected
- procedure Click; override;
- procedure CMMouseEnter(var Msg: TMessage);
- message cm_MouseEnter;
- procedure CMMouseLeave(var Msg: TMessage);
- message cm_MouseLeave;
- public
- constructor Create(AOwner: TComponent); override;
- published
- property HyperlinkColour: TColor
- read FHyperlinkColour write FHyperlinkColour default clBlue;
- property HyperlinkStyle: TFontStyles
- read FHyperlinkStyle write FHyperlinkStyle;
- property Caption;
- {$ifndef DelphiLessThan3}
- property Cursor default crHandPoint;
- {$endif}
- property Font;
- property ParentShowHint;
- property ShowHint;
- property OnClick;
- end;
-
- procedure Register;
-
- implementation
-
- uses
- ShellAPI;
-
- procedure Register;
- begin
- RegisterComponents('Clinic', [THyperLinkLabel]);
- end;
-
- { THyperLinkLabel }
-
- constructor THyperLinkLabel.Create(AOwner: TComponent);
- begin
- inherited Create(AOwner);
- {$ifndef DelphiLessThan3}
- Cursor := crHandPoint;
- {$endif}
- FHyperlinkColour := clBlue;
- FHyperlinkStyle := [fsUnderline];
- FOldColour := Font.Color;
- FOldStyle := Font.Style;
- end;
-
- procedure THyperLinkLabel.Click;
- var
- { For PChar version of URL. Written for Delphi 1 compatibility }
- URLBuf: array[0..255] of Char;
- begin
- inherited Click;
- StrPCopy(URLBuf, Caption);
- ShellExecute(Application.Handle, nil, URLBuf, nil, nil, sw_ShowNormal)
- end;
-
- procedure THyperLinkLabel.CMMouseEnter(var Msg: TMessage);
- begin
- inherited;
- FOldStyle := Font.Style;
- FOldColour := Font.Color;
- Font.Style := FHyperlinkStyle;
- Font.Color := FHyperlinkColour;
- end;
-
- procedure THyperLinkLabel.CMMouseLeave(var Msg: TMessage);
- begin
- inherited;
- Font.Style := FOldStyle;
- Font.Color := FOldColour;
- end;
-
- end.
-